home *** CD-ROM | disk | FTP | other *** search
- /*
- For general Scribus (>=1.3.2) copyright and licensing information please refer
- to the COPYING file provided with the program. Following this notice may exist
- a copyright and/or license notice that predates the release of Scribus 1.3.2
- for which a new license (GPL+exception) is in place.
- */
- /***************************************************************************
- serializer.h - description
- -------------------
- begin : Sat May 5 2001
- copyright : (C) 2001 by Franz Schmid
- email : Franz.Schmid@altmuehlnet.de
- ***************************************************************************/
-
- /***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
- #ifndef SERIALIZER_H
- #define SERIALIZER_H
-
- #include <QString>
- #include <QFile>
- #include <QByteArray>
- #include "scribusapi.h"
- #include "selection.h"
- #include "desaxe/saxio.h"
- #include "desaxe/digester.h"
-
- /**
- * This class reads/writes Scribus datastructures from/to SAX streams
- * (was done by ScribusXML before). It also serves as a testbed for the new
- * Scribus 1.4 file format
- *
- * Currently it also holds to old methods which are used to read/write text
- * from/to a file.
- *
- * @author Andreas Vox
- */
-
- class ScribusDoc;
- class ColorList;
-
- class SCRIBUS_API Serializer : public desaxe::Digester {
- public:
-
- /** Construct a Serializer object which can be used to (de)serialize Scribus
- elements. Since it has Digester as a superclass, a Serializer object can
- also be used where a SaxHandler is required as argument, eg. the saxx() method.
- */
- Serializer(ScribusDoc& doc);
- /**
- Writes all objects in selection to handler as a fragment. Needed styles and colors
- are included.
- */
- static void serializeObjects(const Selection& objects, SaxHandler& handler);
- /**
- Reads objects from the given QString which must represent a fragment, imports them
- into the document and returns a (nonGUI) selection to it.
- */
- Selection deserializeObjects(const QByteArray & xml);
- /**
- Reads objects from the given QFile which must represent a fragment, imports them
- into the document and returns a (nonGUI) selection to it.
- */
- Selection deserializeObjects(const QFile & xml);
-
- Selection cloneObjects(const Selection& objects);
-
- /** Legacy method to read plain text for a textframe */
- static bool readWithEncoding(const QString& filename, const QString& encoding,
- QString & txt);
- /** Legacy method to write plain text from a textframe */
- static bool writeWithEncoding(const QString& filename, const QString& encoding,
- const QString& txt);
-
- private:
- ScribusDoc& m_Doc;
- ColorList backUpColors;
- Selection importCollection();
- void updateGradientColors(const ColorList& colors);
- };
-
- #endif
-